package com.gxuwz.service;

import com.gxuwz.entity.Course;
import com.gxuwz.entity.Department;
import com.gxuwz.entity.vo.CourseVo;
import com.gxuwz.entity.vo.PageVo;
import com.gxuwz.result.PageInfo;

import java.util.List;

/**
 * @Description:课程服务相关操作的服务接口
 */

public interface CourseService {
    /**
     * @Description:获取课程列表
     * @Param:  [com.gxuwz.entity.Course, com.gxuwz.result.PageInfo]
     * @Return: com.gxuwz.entity.vo.PageVo
     */
    public PageVo getCourseList(Course course, PageInfo pageInfo,String instID);

    /**
     * @Description:通过课程编号获取一条课程记录信息
     * @Param:  [java.lang.String]
     * @Return: com.gxuwz.entity.vo.CourseVo
     */

    public CourseVo getCourseOne(String courseId);

    /**
     * @Description:添加一条课程记录信息
     * @Param:  [com.gxuwz.entity.Course]
     * @Return: boolean
     */

    public boolean addCourseInfo(Course course);

    /**
     * @Description:通过课程编号，更新课程记录信息
     * @Param:  [com.gxuwz.entity.Course, java.lang.String]
     * @Return: boolean
     */

    public boolean updateCourseInfo(Course course,String oldId);

    /**
     * @Description:通过课程编号，删除一条课程记录信息
     * @Param:  [java.lang.String]
     * @Return: boolean
     */

    public boolean deleteCourseOne(String courseId);

    /**
     * @Description:通过课程编号，删除一组课程记录信息
     * @Param:  [java.lang.String[]]
     * @Return: boolean
     */

    public boolean deleteCourses(String[] ids);

    /**
     * @Description:获取所有的课程编号
     * @Param:  []
     * @Return: java.util.List<java.lang.String>
     */

    public List<String> selectCourseIds();

    /**
     * @Description:获取所有的学年
     * @Param:  []
     * @Return: java.util.List<java.lang.String>
     */

    public List<String> queryCourseYear();

    /**
     * @Description:获取所有的课程编号和课程名称
     * @Param:  []
     * @Return: java.util.List<com.gxuwz.entity.Course>
     */

    public List<Course> queryCourseIdAndCourseName(String stuID);

    /**
     * @Description:判断课程是否被逻辑删除
     * @Param:  [java.lang.String]
     * @Return: boolean
     */

    boolean selectCourseExist(String classId);
}
